
Intelligent assistants like Alexa and Siri, image searches that found the topic of a photo, and self-driving cars – these intelligent systems used machine learning to develop their expertise. In this module, I learned about various machine learning techniques but concentrated on deep neural learning. I learned about the underlying theory and got hands-on experience creating, training, evaluating, and using machine learning systems. I also examined how these technologies were used and misused and what that meant for our societies and communities.
Learning Outcomes
- Mastered basic and non-linear data structures for organizing data, including lists, trees, and graphs.
- Analyzed algorithm complexity and measured runtime to evaluate efficiency.
- Applied algorithmic techniques like search, recursion, and greedy algorithms for problem-solving.
- Understood the limitations of computational problem-solving, including non-computability and the P ≠ NP conjecture.
- Completed assignments that consolidated knowledge of algorithms, data structures, and computability principles.
Feedback on my assingments
The feedback across the two assignments outlines a commendable start, with a decrease in performance in the second assignment. Key issues identified include challenges with input type understanding, coding syntax errors, incorrect algorithmic assumptions, and difficulties with specific coding practices such as recursion and method headers.
Reflections
Reflecting on the feedback, there's a clear indication of the need to deepen understanding of the concepts and improve coding skills. The feedback underscores the importance of accurate algorithm design, clear and correct coding practices, and thorough testing and debugging.
Professional Skills Matrix learnt and Action Plan
Skills Gained or Enhanced:
- Algorithmic Thinking: Improved understanding of how to approach problem-solving using algorithms, particularly in recognizing input types and designing appropriate solutions.
- Coding Proficiency: Development in coding skills, with a focus on function headers, recursion, and debugging.
- Analytical Skills: Enhanced ability to analyze the requirements of a problem and accurately define preconditions, post-conditions, and assumptions.
Action Plan:
- Revise Core Concepts: Focus on revising topics related to input types, recursion, and breadth-first search (BFS) to solidify understanding. Utilize module resources and seek out additional tutorials or guides online.
- Practice Coding Skills: Engage in coding exercises, specifically targeting areas of weakness such as recursion and method headers. Use online platforms like LeetCode or HackerRank for practice problems.
- Debugging and Testing: Develop a systematic approach to debugging and testing code. Learn to use debugging tools available in the development environment and practice writing test cases that cover a variety of input scenarios.
- Engage with Instructor: Take advantage of the instructor's offer for additional help, including one-on-one tutorials, to clarify doubts and receive personalized guidance on improving coding and algorithmic skills.
- Peer Review and Feedback: Participate in study groups or forums where you can share code and receive feedback. Peer review can provide new perspectives and insights into solving problems more effectively.